package Annotation;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Author:Cjj
 * @date:2025/5/5
 * @description:定义书的注解
 * 判断类上 方法上 成员变量上是否存在注解,并把注解里的内容给解析出来
 * 如何解析注解?
 *  指导思想：要解析谁上面的注解,就应该先拿到谁。
 *  比如要解析类上面的注解,就应该先获取该类的Class对象,再通过Class对象解析其上面的注解
 *  Class Method Field Constructor都实现了AnnotatedElement接口,它们都拥有解析注解的能力
 */

@Target(value={ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface Book {
    //属性没有默认值,在使用时必须给属性赋值
    public String bookName();

    //属性存在默认值
    public double bookPrice() default 56.7;
}
